#ifndef _GAMEPET_H_
#define _GAMEPET_H_


#include "GameEnemy.h"


enum GamePetType
{
	GPT_ATTACK = 0,
	GPT_WAIT,
	GPT_RIDE,
	GPT_REST,

	GPT_HOME,

	GPT_COUNT
};

class GamePet : public GameEnemyEntity
{
public:
	
	GamePet();
	~GamePet();
	
	virtual fvoid			Release();
	
	virtual fint32			GetExp();
	virtual fvoid			Init( GameEnemy* enemy );
	
	fvoid					SetName( const fbyte* name );
	
	GamePetType				GetPetType()
	{
		return (GamePetType)mData.Type;
	}
	
	fvoid					SetPetType( GamePetType type )
	{
		mData.Type = (fbyte)type;
	}
	
	PetData&				GetPetData()
	{
		return mPetData;
	}

	virtual fvoid			CheckLevelUp();
	
protected:

	PetData		mPetData;
};

typedef map< fint32 , GamePet > GamePetMap;
typedef map< fint32 , GamePet >::iterator GamePetMapIter;


#endif

